import axios from 'axios'
import { Toast } from 'vant'

const baseURL = process.env.NODE_ENV === 'development' ? 'http://rap2api.taobao.org/app/mock/279504/' : '真实接口'

// 创建实例  baseurl
const service = axios.create({
  baseURL,
  timeout: 5000 // 服务器超时时间
})
// 请求拦截
service.interceptors.request.use(config => {
  // vant 清提示  提示加载信息
  Toast.loading({
    message: '加载中...',
    forbidClick: true,
    loadingType: 'spinner',
    duration: 0
  })
  return config
})

// 响应拦截 axios 对请求接口的数据做了包装 成一个Object
// 真正的接口的数据保存在 对象的data 中 res 来源于home.vue 的get请求
service.interceptors.response.use(res => {
  // 关闭加载提示
  Toast.clear()
  // 包装后的对象（res）中的一个属性 status 值200 表示能正常获取数据
  if (res.status === 200) {
    if (res.data.code === 200) {
      return res.data.data
    } else {
      const e = new Error('后端接口异常')
      e.error = res.data
      Promise.reject(e)
    }
  } else {
    const err = new Error('请求数据失败')
    err.error = res
    Promise.reject(err)
  }
})
export default service
